[INFO] cloning repository https://github.com/RobertoPirrone/digitaltechne
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/RobertoPirrone/digitaltechne" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRobertoPirrone%2Fdigitaltechne", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRobertoPirrone%2Fdigitaltechne'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d3fb719e5c76f929aaefe660c64fab812417cc4c
[INFO] fixing RobertoPirrone/digitaltechne against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRobertoPirrone%2Fdigitaltechne" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/RobertoPirrone/digitaltechne
[INFO] finished tweaking git repo https://github.com/RobertoPirrone/digitaltechne
[INFO] tweaked toml for git repo https://github.com/RobertoPirrone/digitaltechne written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/RobertoPirrone/digitaltechne on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/RobertoPirrone/digitaltechne already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 199da4d599ede47d48e9f9c718125ef33bf089f59b0c4fc86d42e7fc0004074f
[INFO] running `Command { std: "docker" "start" "199da4d599ede47d48e9f9c718125ef33bf089f59b0c4fc86d42e7fc0004074f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "199da4d599ede47d48e9f9c718125ef33bf089f59b0c4fc86d42e7fc0004074f" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "199da4d599ede47d48e9f9c718125ef33bf089f59b0c4fc86d42e7fc0004074f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "199da4d599ede47d48e9f9c718125ef33bf089f59b0c4fc86d42e7fc0004074f" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating src/backend/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating src/ic-sqlite/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling proc-macro2 v1.0.79
[INFO] [stderr]    Compiling version_check v0.9.4
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling serde v1.0.197
[INFO] [stderr]    Compiling either v1.10.0
[INFO] [stderr]    Compiling cc v1.0.90
[INFO] [stderr]    Compiling rustversion v1.0.14
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling hashbrown v0.14.3
[INFO] [stderr]    Compiling num-traits v0.2.18
[INFO] [stderr]    Compiling num-bigint v0.4.4
[INFO] [stderr]    Compiling typenum v1.17.0
[INFO] [stderr]    Compiling anyhow v1.0.81
[INFO] [stderr]    Compiling paste v1.0.14
[INFO] [stderr]    Compiling once_cell v1.19.0
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]    Compiling unicode-width v0.1.11
[INFO] [stderr]    Compiling cpufeatures v0.2.12
[INFO] [stderr]    Compiling parking_lot_core v0.9.9
[INFO] [stderr]    Compiling typed-arena v2.0.2
[INFO] [stderr]    Compiling arrayvec v0.5.2
[INFO] [stderr]    Compiling memchr v2.7.2
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling crc32fast v1.4.0
[INFO] [stderr]    Compiling data-encoding v2.5.0
[INFO] [stderr]    Compiling regex-syntax v0.6.29
[INFO] [stderr]    Compiling regex-syntax v0.8.3
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling winnow v0.5.40
[INFO] [stderr]    Compiling indexmap v2.2.6
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling dirs-sys-next v0.1.2
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling syn v2.0.58
[INFO] [stderr]    Compiling dirs-next v2.0.0
[INFO] [stderr]    Compiling leb128 v0.2.5
[INFO] [stderr]    Compiling toml_datetime v0.6.5
[INFO] [stderr]    Compiling parking_lot v0.12.1
[INFO] [stderr]    Compiling term v0.7.0
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]    Compiling psm v0.1.21
[INFO] [stderr]    Compiling log v0.4.21
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling ascii-canvas v3.0.0
[INFO] [stderr]    Compiling ena v0.14.2
[INFO] [stderr]     Checking sha2 v0.10.8
[INFO] [stderr]    Compiling petgraph v0.6.4
[INFO] [stderr]    Compiling stacker v0.1.15
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling string_cache v0.8.7
[INFO] [stderr]    Compiling is-terminal v0.4.12
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling beef v0.5.2
[INFO] [stderr]    Compiling unicode-xid v0.2.4
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling pretty v0.10.0
[INFO] [stderr]    Compiling pretty v0.12.3
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]     Checking codespan-reporting v0.11.1
[INFO] [stderr]     Checking lalrpop-util v0.19.12
[INFO] [stderr]    Compiling regex-automata v0.4.6
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]     Checking zerocopy v0.7.32
[INFO] [stderr]     Checking ic0 v0.18.11
[INFO] [stderr]    Compiling libsqlite3-sys-ic v0.25.0
[INFO] [stderr]     Checking ic0 v0.21.1
[INFO] [stderr]     Checking allocator-api2 v0.2.16
[INFO] [stderr]    Compiling serde_json v1.0.115
[INFO] [stderr]     Checking futures-sink v0.3.30
[INFO] [stderr]     Checking futures-core v0.3.30
[INFO] [stderr]     Checking ryu v1.0.17
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]     Checking futures-channel v0.3.30
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking fallible-iterator v0.2.0
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]     Checking hashlink v0.8.4
[INFO] [stderr]    Compiling serde_derive v1.0.197
[INFO] [stderr]    Compiling thiserror-impl v1.0.58
[INFO] [stderr]    Compiling candid_derive v0.6.6
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]    Compiling regex v1.10.4
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]    Compiling thiserror v1.0.58
[INFO] [stderr]    Compiling lalrpop v0.19.12
[INFO] [stderr]    Compiling binread_derive v2.1.0
[INFO] [stderr]    Compiling logos-derive v0.12.1
[INFO] [stderr]    Compiling num_enum_derive v0.5.11
[INFO] [stderr]    Compiling candid_derive v0.5.0
[INFO] [stderr]    Compiling num_enum v0.5.11
[INFO] [stderr]    Compiling binread v2.2.0
[INFO] [stderr]    Compiling logos v0.12.1
[INFO] [stderr]     Checking futures-executor v0.3.30
[INFO] [stderr]     Checking futures v0.3.30
[INFO] [stderr]     Checking serde_bytes v0.11.14
[INFO] [stderr]     Checking ic_principal v0.1.1
[INFO] [stderr]    Compiling serde_tokenstream v0.1.7
[INFO] [stderr]     Checking candid v0.10.6
[INFO] [stderr]    Compiling candid v0.8.4
[INFO] [stderr]    Compiling ic-cdk-macros v0.8.4
[INFO] [stderr]    Compiling ic-cdk-macros v0.9.0
[INFO] [stderr]     Checking ic-cdk v0.12.1
[INFO] [stderr]     Checking ic-cdk v0.13.1
[INFO] [stderr]     Checking ic-cdk-timers v0.7.0
[INFO] [stderr]    Compiling ic-cdk-macros v0.6.10
[INFO] [stderr]     Checking ic-cdk v0.6.10
[INFO] [stderr]     Checking sqlite-vfs-ic v0.2.0
[INFO] [stderr]     Checking rusqlite-ic v0.28.1
[INFO] [stderr]     Checking ic-sqlite v0.1.0 (/opt/rustwide/workdir/src/ic-sqlite)
[INFO] [stderr]    Migrating src/ic-sqlite/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]     Checking backend v0.1.0 (/opt/rustwide/workdir/src/backend)
[INFO] [stderr]    Migrating src/backend/src/lib.rs from 2021 edition to 2024
[INFO] [stderr] error: errors present after applying fixes to crate `backend`
[INFO] [stderr]  --> src/backend/src/artwork_mark.rs
[INFO] [stderr]  ::: src/backend/src/cartridge.rs
[INFO] [stderr]  ::: src/backend/src/documents.rs
[INFO] [stderr]  ::: src/backend/src/dossier.rs
[INFO] [stderr]  ::: src/backend/src/lib.rs
[INFO] [stderr]   = cause: error: #[query] must be above a function. 
[INFO] [stderr]                   expected path
[INFO] [stderr]              --> src/backend/src/artwork_mark.rs:46:1
[INFO] [stderr]               |
[INFO] [stderr]            46 | / #[unsafe(no_mangle)]
[INFO] [stderr]            47 | | pub fn artwork_mark_query(params: ArtworkMarkQueryParams) -> JsonResult {
[INFO] [stderr]            48 | |     let artwork_mark_sql = "select mark_position, dna_text from artwork_mark, cartridge, cartridge_use  where artwork_mark.dossier...
[INFO] [stderr]            49 | |     ic_cdk::println!("Query: {artwork_mark_sql} ");
[INFO] [stderr]            ...  |
[INFO] [stderr]            74 | |     Ok(res)
[INFO] [stderr]            75 | | }
[INFO] [stderr]               | |_^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: #[update] must be above a function. 
[INFO] [stderr]                   expected path
[INFO] [stderr]               --> src/backend/src/artwork_mark.rs:79:1
[INFO] [stderr]                |
[INFO] [stderr]             79 | / #[unsafe(no_mangle)]
[INFO] [stderr]             80 | | pub fn artwork_mark_insert(jv: String) -> ExecResult {
[INFO] [stderr]             81 | |     ic_cdk::println!("artwork_mark_insert input: {jv} ");
[INFO] [stderr]             82 | |     let d: ArtworkMark = serde_json::from_str(&jv).unwrap();
[INFO] [stderr]            ...   |
[INFO] [stderr]            121 | | }
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/backend/src/artwork_mark.rs:46:3
[INFO] [stdout]    |
[INFO] [stdout] 46 | #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout]    = note: `--force-warn unsafe-attr-outside-unsafe` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]    |
[INFO] [stdout] 46 | #[unsafe(no_mangle)]
[INFO] [stdout]    |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                | |_^
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/backend/src/artwork_mark.rs:79:3
[INFO] [stdout]    |
[INFO] [stdout] 79 | #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]    |
[INFO] [stdout] 79 | #[unsafe(no_mangle)]
[INFO] [stdout]    |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/backend/src/cartridge.rs:34:3
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[unsafe(no_mangle)]
[INFO] [stdout]    |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/backend/src/cartridge.rs:74:3
[INFO] [stdout]    |
[INFO] [stdout] 74 | #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]    |
[INFO] [stdout] 74 | #[unsafe(no_mangle)]
[INFO] [stdout]    |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            error: #[query] must be above a function. 
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]    --> src/backend/src/cartridge.rs:129:3
[INFO] [stdout]     |
[INFO] [stdout] 129 | #[no_mangle]
[INFO] [stdout]     |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]     |
[INFO] [stdout] 129 | #[unsafe(no_mangle)]
[INFO] [stdout]     |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                   expected path
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]    --> src/backend/src/cartridge.rs:178:3
[INFO] [stdout]     |
[INFO] [stdout] 178 | #[no_mangle]
[INFO] [stdout]     |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]     |
[INFO] [stdout] 178 | #[unsafe(no_mangle)]
[INFO] [stdout]     |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/backend/src/cartridge.rs:34:1
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]    --> src/backend/src/cartridge.rs:206:3
[INFO] [stdout]     |
[INFO] [stdout] 206 | #[no_mangle]
[INFO] [stdout]     |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]     |
[INFO] [stdout] 206 | #[unsafe(no_mangle)]
[INFO] [stdout]     |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/backend/src/artwork_mark.rs:114:18
[INFO] [stdout]     |
[INFO] [stdout]  83 |       let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stdout]     |           ----
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `conn` calls a custom destructor
[INFO] [stdout]     |           `conn` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 114 |       return match conn.execute(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 115 | |         &sql,
[INFO] [stdout] 116 | |         []
[INFO] [stdout] 117 | |     ) {
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 121 |   }
[INFO] [stdout]     |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `conn` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            34 | / #[unsafe(no_mangle)]
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/backend/src/cartridge.rs:92:18
[INFO] [stdout]    |
[INFO] [stdout] 85 |       let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stdout]    |           ----
[INFO] [stdout]    |           |
[INFO] [stdout]    |           `conn` calls a custom destructor
[INFO] [stdout]    |           `conn` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 92 |       return match conn.execute(
[INFO] [stdout]    |  __________________^
[INFO] [stdout] 93 | |         &sql,
[INFO] [stdout] 94 | |         []
[INFO] [stdout] 95 | |     ) {
[INFO] [stdout]    | |     ^
[INFO] [stdout]    | |     |
[INFO] [stdout]    | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 99 |   }
[INFO] [stdout]    |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `conn` invokes this custom destructor
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            35 | | pub fn cartridge_query(params: CartridgeQueryParams) -> JsonResult {
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/backend/src/cartridge.rs:168:18
[INFO] [stdout]     |
[INFO] [stdout] 131 |       let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stdout]     |           ----
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `conn` calls a custom destructor
[INFO] [stdout]     |           `conn` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 136 |       let mut stmt = conn.prepare(&sql_q).unwrap();
[INFO] [stdout]     |           --------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `stmt` calls a custom destructor
[INFO] [stdout]     |           `stmt` will be dropped later as of Edition 2024
[INFO] [stdout] 137 |       let mut rows = stmt.query([]).unwrap();
[INFO] [stdout]     |           --------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `rows` calls a custom destructor
[INFO] [stdout]     |           `rows` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 168 |       return match conn.execute(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 169 | |         &sql,
[INFO] [stdout] 170 | |         []
[INFO] [stdout] 171 | |     ) {
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 175 |   }
[INFO] [stdout]     |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `conn` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `stmt` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rusqlite-ic-0.28.1/src/statement.rs:902:1
[INFO] [stdout]     |
[INFO] [stdout] 902 | impl Drop for Statement<'_> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `rows` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rusqlite-ic-0.28.1/src/row.rs:107:1
[INFO] [stdout]     |
[INFO] [stdout] 107 | impl Drop for Rows<'_> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            36 | |     let cartridge_sql = "select * from cartridge where uuid = ?1";
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/backend/src/cartridge.rs:195:18
[INFO] [stdout]     |
[INFO] [stdout] 182 |       let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stdout]     |           ----
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `conn` calls a custom destructor
[INFO] [stdout]     |           `conn` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 195 |       return match conn.execute(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 196 | |         &sql,
[INFO] [stdout] 197 | |         []
[INFO] [stdout] 198 | |     ) {
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 202 |   }
[INFO] [stdout]     |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `conn` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            ...  |
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/backend/src/cartridge.rs:215:15
[INFO] [stdout]     |
[INFO] [stdout] 215 |         match rows.next()   {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 235 |             Err(err) => return Err(MyError::CanisterError {message: format!("{:?}", err) })
[INFO] [stdout]     |                 ---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `err` calls a custom destructor
[INFO] [stdout]     |                 `err` will be dropped later as of Edition 2024
[INFO] [stdout] 236 |             }
[INFO] [stdout] 237 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `err` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            70 | |     Ok(res)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/backend/src/documents.rs:116:18
[INFO] [stdout]     |
[INFO] [stdout] 104 |       let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stdout]     |           ----
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `conn` calls a custom destructor
[INFO] [stdout]     |           `conn` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 116 |       return match conn.execute(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 117 | |         &sql,
[INFO] [stdout] 118 | |         []
[INFO] [stdout] 119 | |     ) {
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 123 |   }
[INFO] [stdout]     |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `conn` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            71 | | }
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/backend/src/documents.rs:139:15
[INFO] [stdout]     |
[INFO] [stdout] 139 |         match rows.next()   {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 148 |             Err(err) => return Err(MyError::CanisterError {message: format!("{:?}", err) })
[INFO] [stdout]     |                 ---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `err` calls a custom destructor
[INFO] [stdout]     |                 `err` will be dropped later as of Edition 2024
[INFO] [stdout] 149 |             }
[INFO] [stdout] 150 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `err` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               | |_^
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/backend/src/dossier.rs:147:15
[INFO] [stdout]     |
[INFO] [stdout] 147 |         match rows.next()   {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 171 |             Err(_err) => return dossiers
[INFO] [stdout]     |                 ----
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `_err` calls a custom destructor
[INFO] [stdout]     |                 `_err` will be dropped later as of Edition 2024
[INFO] [stdout] 172 |             }
[INFO] [stdout] 173 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `_err` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/backend/src/dossier.rs:216:18
[INFO] [stdout]     |
[INFO] [stdout] 209 |       let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stdout]     |           ----
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `conn` calls a custom destructor
[INFO] [stdout]     |           `conn` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 216 |       return match conn.execute(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 217 | |         &sql,
[INFO] [stdout] 218 | |         []
[INFO] [stdout] 219 | |     ) {
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 223 |   }
[INFO] [stdout]     |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `conn` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/backend/src/lib.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 20 |       let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stdout]    |           ----
[INFO] [stdout]    |           |
[INFO] [stdout]    |           `conn` calls a custom destructor
[INFO] [stdout]    |           `conn` will be dropped later as of Edition 2024
[INFO] [stdout] 21 |       return match conn.execute(
[INFO] [stdout]    |  __________________^
[INFO] [stdout] 22 | |         &sql,
[INFO] [stdout] 23 | |         []
[INFO] [stdout] 24 | |     ) {
[INFO] [stdout]    | |     ^
[INFO] [stdout]    | |     |
[INFO] [stdout]    | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 28 |   }
[INFO] [stdout]    |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `conn` invokes this custom destructor
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            error: #[update] must be above a function. 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/backend/src/lib.rs:39:15
[INFO] [stdout]    |
[INFO] [stdout] 39 |         match rows.next() {
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 59 |             Err(err) => return Err(MyError::CanisterError {message: format!("{:?}", err) })
[INFO] [stdout]    |                 ---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `err` calls a custom destructor
[INFO] [stdout]    |                 `err` will be dropped later as of Edition 2024
[INFO] [stdout] 60 |         }
[INFO] [stdout] 61 |     }
[INFO] [stdout]    |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `err` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                   expected path
[INFO] [stderr]              --> src/backend/src/cartridge.rs:74:1
[INFO] [stderr]               |
[INFO] [stderr]            74 | / #[unsafe(no_mangle)]
[INFO] [stderr]            75 | | pub fn cartridge_insert(jv: String) -> ExecResult {
[INFO] [stderr]            76 | |     ic_cdk::println!("cartridge_insert input: {jv} ");
[INFO] [stderr]            77 | |     let d: Cartridge = serde_json::from_str(&jv).unwrap();
[INFO] [stderr]            ...  |
[INFO] [stderr]            99 | | }
[INFO] [stderr]               | |_^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: #[update] must be above a function. 
[INFO] [stderr]                   expected path
[INFO] [stderr]               --> src/backend/src/cartridge.rs:129:1
[INFO] [stderr]                |
[INFO] [stderr]            129 | / #[unsafe(no_mangle)]
[INFO] [stderr]            130 | | pub fn cartridge_use_insert(params: CartridgeUseParams) -> ExecResult {
[INFO] [stderr]            131 | |     let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stderr]            132 | |     let caller = ic_cdk::caller().to_string();
[INFO] [stderr]            ...   |
[INFO] [stderr]            175 | | }
[INFO] [stderr]                | |_^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: #[update] must be above a function. 
[INFO] [stderr]                   expected path
[INFO] [stderr]               --> src/backend/src/cartridge.rs:178:1
[INFO] [stderr]                |
[INFO] [stderr]            178 | / #[unsafe(no_mangle)]
[INFO] [stderr]            179 | | pub fn cartridge_use_update(jv: String) -> ExecResult {
[INFO] [stderr]            180 | |     ic_cdk::println!("cartridge_use_update input: {jv} ");
[INFO] [stderr]            181 | |     let d: CartridgeUse = serde_json::from_str(&jv).unwrap();
[INFO] [stderr]            ...   |
[INFO] [stderr]            202 | | }
[INFO] [stderr]                | |_^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: #[update] must be above a function. 
[INFO] [stderr]                   expected path
[INFO] [stderr]               --> src/backend/src/cartridge.rs:206:1
[INFO] [stderr]                |
[INFO] [stderr]            206 | / #[unsafe(no_mangle)]
[INFO] [stderr]            207 | | pub fn cartridge_use_available() -> JsonResult {
[INFO] [stderr]            208 | |     let mut res = Vec::new();
[INFO] [stderr]            209 | |     let caller = ic_cdk::caller().to_string();
[INFO] [stderr]            ...   |
[INFO] [stderr]            243 | |     Ok(res)
[INFO] [stderr]            244 | | }
[INFO] [stderr]                | |_^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/backend/src/documents.rs:116:18
[INFO] [stderr]                |
[INFO] [stderr]            104 |       let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stderr]                |           ----
[INFO] [stderr]                |           |
[INFO] [stderr]                |           `conn` calls a custom destructor
[INFO] [stderr]                |           `conn` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            116 |       return match conn.execute(
[INFO] [stderr]                |  __________________^
[INFO] [stderr]            117 | |         &sql,
[INFO] [stderr]            118 | |         []
[INFO] [stderr]            119 | |     ) {
[INFO] [stderr]                | |     ^
[INFO] [stderr]                | |     |
[INFO] [stderr]                | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            123 |   }
[INFO] [stderr]                |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]            note: `conn` invokes this custom destructor
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]                = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/backend/src/documents.rs:139:15
[INFO] [stderr]                |
[INFO] [stderr]            139 |         match rows.next()   {
[INFO] [stderr]                |               ^^^^^^^^^^^
[INFO] [stderr]                |               |
[INFO] [stderr]                |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            148 |             Err(err) => return Err(MyError::CanisterError {message: format!("{:?}", err) })
[INFO] [stderr]                |                 ---
[INFO] [stderr]                |                 |
[INFO] [stderr]                |                 `err` calls a custom destructor
[INFO] [stderr]                |                 `err` will be dropped later as of Edition 2024
[INFO] [stderr]            149 |             }
[INFO] [stderr]            150 |     }
[INFO] [stderr]                |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: `err` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/backend/src/dossier.rs:147:15
[INFO] [stderr]                |
[INFO] [stderr]            147 |         match rows.next()   {
[INFO] [stderr]                |               ^^^^^^^^^^^
[INFO] [stderr]                |               |
[INFO] [stderr]                |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            171 |             Err(_err) => return dossiers
[INFO] [stderr]                |                 ----
[INFO] [stderr]                |                 |
[INFO] [stderr]                |                 `_err` calls a custom destructor
[INFO] [stderr]                |                 `_err` will be dropped later as of Edition 2024
[INFO] [stderr]            172 |             }
[INFO] [stderr]            173 |     }
[INFO] [stderr]                |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: `_err` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/backend/src/dossier.rs:216:18
[INFO] [stderr]                |
[INFO] [stderr]            209 |       let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stderr]                |           ----
[INFO] [stderr]                |           |
[INFO] [stderr]                |           `conn` calls a custom destructor
[INFO] [stderr]                |           `conn` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            216 |       return match conn.execute(
[INFO] [stderr]                |  __________________^
[INFO] [stderr]            217 | |         &sql,
[INFO] [stderr]            218 | |         []
[INFO] [stderr]            219 | |     ) {
[INFO] [stderr]                | |     ^
[INFO] [stderr]                | |     |
[INFO] [stderr]                | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            223 |   }
[INFO] [stderr]                |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]            note: `conn` invokes this custom destructor
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]              --> src/backend/src/lib.rs:21:18
[INFO] [stderr]               |
[INFO] [stderr]            20 |       let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stderr]               |           ----
[INFO] [stderr]               |           |
[INFO] [stderr]               |           `conn` calls a custom destructor
[INFO] [stderr]               |           `conn` will be dropped later as of Edition 2024
[INFO] [stderr]            21 |       return match conn.execute(
[INFO] [stderr]               |  __________________^
[INFO] [stderr]            22 | |         &sql,
[INFO] [stderr]            23 | |         []
[INFO] [stderr]            24 | |     ) {
[INFO] [stderr]               | |     ^
[INFO] [stderr]               | |     |
[INFO] [stderr]               | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]               |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            28 |   }
[INFO] [stderr]               |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]               |
[INFO] [stderr]               = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]            note: `conn` invokes this custom destructor
[INFO] [stderr]              --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stderr]               = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]               = warning: this changes meaning in Rust 2024
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]              --> src/backend/src/lib.rs:39:15
[INFO] [stderr]               |
[INFO] [stderr]            39 |         match rows.next() {
[INFO] [stderr]               |               ^^^^^^^^^^^
[INFO] [stderr]               |               |
[INFO] [stderr]               |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]               |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            59 |             Err(err) => return Err(MyError::CanisterError {message: format!("{:?}", err) })
[INFO] [stderr]               |                 ---
[INFO] [stderr]               |                 |
[INFO] [stderr]               |                 `err` calls a custom destructor
[INFO] [stderr]               |                 `err` will be dropped later as of Edition 2024
[INFO] [stderr]            60 |         }
[INFO] [stderr]            61 |     }
[INFO] [stderr]               |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]               |
[INFO] [stderr]               = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]               = note: `err` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]               = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]               = warning: this changes meaning in Rust 2024
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 7 previous errors; 6 warnings emitted
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stderr] error: errors present after applying fixes to crate `backend`
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/backend/src/artwork_mark.rs:46:3
[INFO] [stdout]    |
[INFO] [stdout] 46 | #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout]    = note: `--force-warn unsafe-attr-outside-unsafe` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]    |
[INFO] [stdout] 46 | #[unsafe(no_mangle)]
[INFO] [stdout]    |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  --> src/backend/src/artwork_mark.rs
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/backend/src/artwork_mark.rs:79:3
[INFO] [stdout]    |
[INFO] [stdout] 79 | #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]    |
[INFO] [stdout] 79 | #[unsafe(no_mangle)]
[INFO] [stdout]    |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/backend/src/cartridge.rs
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/backend/src/cartridge.rs:34:3
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[unsafe(no_mangle)]
[INFO] [stdout]    |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/backend/src/documents.rs
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/backend/src/cartridge.rs:74:3
[INFO] [stdout]    |
[INFO] [stdout] 74 | #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]    |
[INFO] [stdout] 74 | #[unsafe(no_mangle)]
[INFO] [stdout]    |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/backend/src/dossier.rs
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]    --> src/backend/src/cartridge.rs:129:3
[INFO] [stdout]     |
[INFO] [stdout] 129 | #[no_mangle]
[INFO] [stdout]     |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]     |
[INFO] [stdout] 129 | #[unsafe(no_mangle)]
[INFO] [stdout]     |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/backend/src/lib.rs
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]    --> src/backend/src/cartridge.rs:178:3
[INFO] [stdout]     |
[INFO] [stdout] 178 | #[no_mangle]
[INFO] [stdout]     |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]     |
[INFO] [stdout] 178 | #[unsafe(no_mangle)]
[INFO] [stdout]     |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]   = cause: error: #[query] must be above a function. 
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]    --> src/backend/src/cartridge.rs:206:3
[INFO] [stdout]     |
[INFO] [stdout] 206 | #[no_mangle]
[INFO] [stdout]     |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]     |
[INFO] [stdout] 206 | #[unsafe(no_mangle)]
[INFO] [stdout]     |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                   expected path
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/backend/src/artwork_mark.rs:114:18
[INFO] [stdout]     |
[INFO] [stdout]  83 |       let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stdout]     |           ----
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `conn` calls a custom destructor
[INFO] [stdout]     |           `conn` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 114 |       return match conn.execute(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 115 | |         &sql,
[INFO] [stdout] 116 | |         []
[INFO] [stdout] 117 | |     ) {
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 121 |   }
[INFO] [stdout]     |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `conn` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/backend/src/artwork_mark.rs:46:1
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/backend/src/cartridge.rs:92:18
[INFO] [stdout]    |
[INFO] [stdout] 85 |       let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stdout]    |           ----
[INFO] [stdout]    |           |
[INFO] [stdout]    |           `conn` calls a custom destructor
[INFO] [stdout]    |           `conn` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 92 |       return match conn.execute(
[INFO] [stdout]    |  __________________^
[INFO] [stdout] 93 | |         &sql,
[INFO] [stdout] 94 | |         []
[INFO] [stdout] 95 | |     ) {
[INFO] [stdout]    | |     ^
[INFO] [stdout]    | |     |
[INFO] [stdout]    | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 99 |   }
[INFO] [stdout]    |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `conn` invokes this custom destructor
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/backend/src/cartridge.rs:168:18
[INFO] [stdout]     |
[INFO] [stdout] 131 |       let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stdout]     |           ----
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `conn` calls a custom destructor
[INFO] [stdout]     |           `conn` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 136 |       let mut stmt = conn.prepare(&sql_q).unwrap();
[INFO] [stdout]     |           --------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `stmt` calls a custom destructor
[INFO] [stdout]     |           `stmt` will be dropped later as of Edition 2024
[INFO] [stdout] 137 |       let mut rows = stmt.query([]).unwrap();
[INFO] [stdout]     |           --------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `rows` calls a custom destructor
[INFO] [stdout]     |           `rows` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 168 |       return match conn.execute(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 169 | |         &sql,
[INFO] [stdout] 170 | |         []
[INFO] [stdout] 171 | |     ) {
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 175 |   }
[INFO] [stdout]     |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `conn` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `stmt` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rusqlite-ic-0.28.1/src/statement.rs:902:1
[INFO] [stdout]     |
[INFO] [stdout] 902 | impl Drop for Statement<'_> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `rows` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rusqlite-ic-0.28.1/src/row.rs:107:1
[INFO] [stdout]     |
[INFO] [stdout] 107 | impl Drop for Rows<'_> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            46 | / #[unsafe(no_mangle)]
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/backend/src/cartridge.rs:195:18
[INFO] [stdout]     |
[INFO] [stdout] 182 |       let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stdout]     |           ----
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `conn` calls a custom destructor
[INFO] [stdout]     |           `conn` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 195 |       return match conn.execute(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 196 | |         &sql,
[INFO] [stdout] 197 | |         []
[INFO] [stdout] 198 | |     ) {
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 202 |   }
[INFO] [stdout]     |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `conn` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            47 | | pub fn artwork_mark_query(params: ArtworkMarkQueryParams) -> JsonResult {
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/backend/src/cartridge.rs:215:15
[INFO] [stdout]     |
[INFO] [stdout] 215 |         match rows.next()   {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 235 |             Err(err) => return Err(MyError::CanisterError {message: format!("{:?}", err) })
[INFO] [stdout]     |                 ---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `err` calls a custom destructor
[INFO] [stdout]     |                 `err` will be dropped later as of Edition 2024
[INFO] [stdout] 236 |             }
[INFO] [stdout] 237 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `err` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            48 | |     let artwork_mark_sql = "select mark_position, dna_text from artwork_mark, cartridge, cartridge_use  where artwork_mark.dossier...
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/backend/src/documents.rs:116:18
[INFO] [stdout]     |
[INFO] [stdout] 104 |       let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stdout]     |           ----
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `conn` calls a custom destructor
[INFO] [stdout]     |           `conn` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 116 |       return match conn.execute(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 117 | |         &sql,
[INFO] [stdout] 118 | |         []
[INFO] [stdout] 119 | |     ) {
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 123 |   }
[INFO] [stdout]     |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `conn` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            49 | |     ic_cdk::println!("Query: {artwork_mark_sql} ");
[INFO] [stderr]            ...  |
[INFO] [stderr]            74 | |     Ok(res)
[INFO] [stderr]            75 | | }
[INFO] [stderr]               | |_^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: #[update] must be above a function. 
[INFO] [stderr]                   expected path
[INFO] [stderr]               --> src/backend/src/artwork_mark.rs:79:1
[INFO] [stderr]                |
[INFO] [stderr]             79 | / #[unsafe(no_mangle)]
[INFO] [stderr]             80 | | pub fn artwork_mark_insert(jv: String) -> ExecResult {
[INFO] [stderr]             81 | |     ic_cdk::println!("artwork_mark_insert input: {jv} ");
[INFO] [stderr]             82 | |     let d: ArtworkMark = serde_json::from_str(&jv).unwrap();
[INFO] [stderr]            ...   |
[INFO] [stderr]            121 | | }
[INFO] [stderr]                | |_^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: #[query] must be above a function. 
[INFO] [stderr]                   expected path
[INFO] [stderr]              --> src/backend/src/cartridge.rs:34:1
[INFO] [stderr]               |
[INFO] [stderr]            34 | / #[unsafe(no_mangle)]
[INFO] [stderr]            35 | | pub fn cartridge_query(params: CartridgeQueryParams) -> JsonResult {
[INFO] [stderr]            36 | |     let cartridge_sql = "select * from cartridge where uuid = ?1";
[INFO] [stderr]            ...  |
[INFO] [stderr]            70 | |     Ok(res)
[INFO] [stderr]            71 | | }
[INFO] [stderr]               | |_^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: #[update] must be above a function. 
[INFO] [stderr]                   expected path
[INFO] [stderr]              --> src/backend/src/cartridge.rs:74:1
[INFO] [stderr]               |
[INFO] [stderr]            74 | / #[unsafe(no_mangle)]
[INFO] [stderr]            75 | | pub fn cartridge_insert(jv: String) -> ExecResult {
[INFO] [stderr]            76 | |     ic_cdk::println!("cartridge_insert input: {jv} ");
[INFO] [stderr]            77 | |     let d: Cartridge = serde_json::from_str(&jv).unwrap();
[INFO] [stderr]            ...  |
[INFO] [stderr]            99 | | }
[INFO] [stderr]               | |_^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: #[update] must be above a function. 
[INFO] [stderr]                   expected path
[INFO] [stderr]               --> src/backend/src/cartridge.rs:129:1
[INFO] [stderr]                |
[INFO] [stderr]            129 | / #[unsafe(no_mangle)]
[INFO] [stderr]            130 | | pub fn cartridge_use_insert(params: CartridgeUseParams) -> ExecResult {
[INFO] [stderr]            131 | |     let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stderr]            132 | |     let caller = ic_cdk::caller().to_string();
[INFO] [stderr]            ...   |
[INFO] [stderr]            175 | | }
[INFO] [stderr]                | |_^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: #[update] must be above a function. 
[INFO] [stderr]                   expected path
[INFO] [stderr]               --> src/backend/src/cartridge.rs:178:1
[INFO] [stderr]                |
[INFO] [stderr]            178 | / #[unsafe(no_mangle)]
[INFO] [stderr]            179 | | pub fn cartridge_use_update(jv: String) -> ExecResult {
[INFO] [stderr]            180 | |     ic_cdk::println!("cartridge_use_update input: {jv} ");
[INFO] [stderr]            181 | |     let d: CartridgeUse = serde_json::from_str(&jv).unwrap();
[INFO] [stderr]            ...   |
[INFO] [stderr]            202 | | }
[INFO] [stderr]                | |_^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: #[update] must be above a function. 
[INFO] [stderr]                   expected path
[INFO] [stderr]               --> src/backend/src/cartridge.rs:206:1
[INFO] [stderr]                |
[INFO] [stderr]            206 | / #[unsafe(no_mangle)]
[INFO] [stderr]            207 | | pub fn cartridge_use_available() -> JsonResult {
[INFO] [stderr]            208 | |     let mut res = Vec::new();
[INFO] [stderr]            209 | |     let caller = ic_cdk::caller().to_string();
[INFO] [stderr]            ...   |
[INFO] [stderr]            243 | |     Ok(res)
[INFO] [stderr]            244 | | }
[INFO] [stderr]                | |_^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/backend/src/documents.rs:116:18
[INFO] [stderr]                |
[INFO] [stderr]            104 |       let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stderr]                |           ----
[INFO] [stderr]                |           |
[INFO] [stderr]                |           `conn` calls a custom destructor
[INFO] [stderr]                |           `conn` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            116 |       return match conn.execute(
[INFO] [stderr]                |  __________________^
[INFO] [stderr]            117 | |         &sql,
[INFO] [stderr]            118 | |         []
[INFO] [stderr]            119 | |     ) {
[INFO] [stderr]                | |     ^
[INFO] [stderr]                | |     |
[INFO] [stderr]                | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            123 |   }
[INFO] [stderr]                |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]            note: `conn` invokes this custom destructor
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]                = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/backend/src/documents.rs:139:15
[INFO] [stderr]                |
[INFO] [stderr]            139 |         match rows.next()   {
[INFO] [stderr]                |               ^^^^^^^^^^^
[INFO] [stderr]                |               |
[INFO] [stderr]                |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            148 |             Err(err) => return Err(MyError::CanisterError {message: format!("{:?}", err) })
[INFO] [stderr]                |                 ---
[INFO] [stderr]                |                 |
[INFO] [stderr]                |                 `err` calls a custom destructor
[INFO] [stderr]                |                 `err` will be dropped later as of Edition 2024
[INFO] [stderr]            149 |             }
[INFO] [stderr]            150 |     }
[INFO] [stderr]                |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: `err` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/backend/src/dossier.rs:147:15
[INFO] [stderr]                |
[INFO] [stderr]            147 |         match rows.next()   {
[INFO] [stderr]                |               ^^^^^^^^^^^
[INFO] [stderr]                |               |
[INFO] [stderr]                |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            171 |             Err(_err) => return dossiers
[INFO] [stderr]                |                 ----
[INFO] [stderr]                |                 |
[INFO] [stderr]                |                 `_err` calls a custom destructor
[INFO] [stderr]                |                 `_err` will be dropped later as of Edition 2024
[INFO] [stderr]            172 |             }
[INFO] [stderr]            173 |     }
[INFO] [stderr]                |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: `_err` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/backend/src/dossier.rs:216:18
[INFO] [stderr]                |
[INFO] [stderr]            209 |       let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stderr]                |           ----
[INFO] [stderr]                |           |
[INFO] [stderr]                |           `conn` calls a custom destructor
[INFO] [stderr]                |           `conn` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            216 |       return match conn.execute(
[INFO] [stderr]                |  __________________^
[INFO] [stderr]            217 | |         &sql,
[INFO] [stderr]            218 | |         []
[INFO] [stderr]            219 | |     ) {
[INFO] [stderr]                | |     ^
[INFO] [stderr]                | |     |
[INFO] [stderr]                | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            223 |   }
[INFO] [stderr]                |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]            note: `conn` invokes this custom destructor
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]              --> src/backend/src/lib.rs:21:18
[INFO] [stderr]               |
[INFO] [stderr]            20 |       let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stderr]               |           ----
[INFO] [stderr]               |           |
[INFO] [stderr]               |           `conn` calls a custom destructor
[INFO] [stderr]               |           `conn` will be dropped later as of Edition 2024
[INFO] [stderr]            21 |       return match conn.execute(
[INFO] [stderr]               |  __________________^
[INFO] [stderr]            22 | |         &sql,
[INFO] [stderr]            23 | |         []
[INFO] [stderr]            24 | |     ) {
[INFO] [stderr]               | |     ^
[INFO] [stderr]               | |     |
[INFO] [stderr]               | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]               |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            28 |   }
[INFO] [stderr]               |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]               |
[INFO] [stderr]               = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]            note: `conn` invokes this custom destructor
[INFO] [stderr]              --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stderr]               = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]               = warning: this changes meaning in Rust 2024
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]              --> src/backend/src/lib.rs:39:15
[INFO] [stderr]               |
[INFO] [stderr]            39 |         match rows.next() {
[INFO] [stderr]               |               ^^^^^^^^^^^
[INFO] [stderr]               |               |
[INFO] [stderr]               |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]               |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            59 |             Err(err) => return Err(MyError::CanisterError {message: format!("{:?}", err) })
[INFO] [stderr]               |                 ---
[INFO] [stderr]               |                 |
[INFO] [stderr]               |                 `err` calls a custom destructor
[INFO] [stderr]               |                 `err` will be dropped later as of Edition 2024
[INFO] [stderr]            60 |         }
[INFO] [stderr]            61 |     }
[INFO] [stderr]               |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]               |
[INFO] [stderr]               = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]               = note: `err` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]               = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]               = warning: this changes meaning in Rust 2024
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 7 previous errors; 6 warnings emitted
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/backend/src/documents.rs:139:15
[INFO] [stdout]     |
[INFO] [stdout] 139 |         match rows.next()   {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 148 |             Err(err) => return Err(MyError::CanisterError {message: format!("{:?}", err) })
[INFO] [stdout]     |                 ---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `err` calls a custom destructor
[INFO] [stdout]     |                 `err` will be dropped later as of Edition 2024
[INFO] [stdout] 149 |             }
[INFO] [stdout] 150 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `err` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/backend/src/dossier.rs:147:15
[INFO] [stdout]     |
[INFO] [stdout] 147 |         match rows.next()   {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 171 |             Err(_err) => return dossiers
[INFO] [stdout]     |                 ----
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `_err` calls a custom destructor
[INFO] [stdout]     |                 `_err` will be dropped later as of Edition 2024
[INFO] [stdout] 172 |             }
[INFO] [stdout] 173 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `_err` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 46.44s
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/backend/src/dossier.rs:216:18
[INFO] [stdout]     |
[INFO] [stdout] 209 |       let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stdout]     |           ----
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `conn` calls a custom destructor
[INFO] [stdout]     |           `conn` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 216 |       return match conn.execute(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 217 | |         &sql,
[INFO] [stdout] 218 | |         []
[INFO] [stdout] 219 | |     ) {
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 223 |   }
[INFO] [stdout]     |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `conn` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] crater-edition-check: backend v0.1.0 (/opt/rustwide/workdir/src/backend) updating edition from 2021 to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/backend/src/lib.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 20 |       let conn = ic_sqlite::CONN.lock().unwrap();
[INFO] [stdout]    |           ----
[INFO] [stdout]    |           |
[INFO] [stdout]    |           `conn` calls a custom destructor
[INFO] [stdout]    |           `conn` will be dropped later as of Edition 2024
[INFO] [stdout] 21 |       return match conn.execute(
[INFO] [stdout]    |  __________________^
[INFO] [stdout] 22 | |         &sql,
[INFO] [stdout] 23 | |         []
[INFO] [stdout] 24 | |     ) {
[INFO] [stdout]    | |     ^
[INFO] [stdout]    | |     |
[INFO] [stdout]    | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 28 |   }
[INFO] [stdout]    |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `conn` invokes this custom destructor
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] crater-edition-check: ic-sqlite v0.1.0 (/opt/rustwide/workdir/src/ic-sqlite) updating edition from 2021 to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/backend/src/lib.rs:39:15
[INFO] [stdout]    |
[INFO] [stdout] 39 |         match rows.next() {
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 59 |             Err(err) => return Err(MyError::CanisterError {message: format!("{:?}", err) })
[INFO] [stdout]    |                 ---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `err` calls a custom destructor
[INFO] [stdout]    |                 `err` will be dropped later as of Edition 2024
[INFO] [stdout] 60 |         }
[INFO] [stdout] 61 |     }
[INFO] [stdout]    |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `err` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ic-sqlite v0.1.0 (/opt/rustwide/workdir/src/ic-sqlite)
[INFO] [stderr]     Checking backend v0.1.0 (/opt/rustwide/workdir/src/backend)
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/backend/src/artwork_mark.rs:46:3
[INFO] [stdout]    |
[INFO] [stdout] 46 | #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]    |
[INFO] [stdout] 46 | #[unsafe(no_mangle)]
[INFO] [stdout]    |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/backend/src/artwork_mark.rs:79:3
[INFO] [stdout]    |
[INFO] [stdout] 79 | #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]    |
[INFO] [stdout] 79 | #[unsafe(no_mangle)]
[INFO] [stdout]    |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/backend/src/cartridge.rs:34:3
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[unsafe(no_mangle)]
[INFO] [stdout]    |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/backend/src/cartridge.rs:74:3
[INFO] [stdout]    |
[INFO] [stdout] 74 | #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]    |
[INFO] [stdout] 74 | #[unsafe(no_mangle)]
[INFO] [stdout]    |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/backend/src/artwork_mark.rs:46:3
[INFO] [stdout]    |
[INFO] [stdout] 46 | #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]    |
[INFO] [stdout] 46 | #[unsafe(no_mangle)]
[INFO] [stdout]    |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/backend/src/artwork_mark.rs:79:3
[INFO] [stdout]    |
[INFO] [stdout] 79 | #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]    |
[INFO] [stdout] 79 | #[unsafe(no_mangle)]
[INFO] [stdout]    |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]    --> src/backend/src/cartridge.rs:129:3
[INFO] [stdout]     |
[INFO] [stdout] 129 | #[no_mangle]
[INFO] [stdout]     |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]     |
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]     |
[INFO] [stdout] 129 | #[unsafe(no_mangle)]
[INFO] [stdout]     |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]    --> src/backend/src/cartridge.rs:178:3
[INFO] [stdout]     |
[INFO] [stdout] 178 | #[no_mangle]
[INFO] [stdout]     |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]     |
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]     |
[INFO] [stdout] 178 | #[unsafe(no_mangle)]
[INFO] [stdout]     |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]    --> src/backend/src/cartridge.rs:206:3
[INFO] [stdout]     |
[INFO] [stdout] 206 | #[no_mangle]
[INFO] [stdout]     |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]     |
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]     |
[INFO] [stdout] 206 | #[unsafe(no_mangle)]
[INFO] [stdout]     |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/backend/src/cartridge.rs:34:3
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[unsafe(no_mangle)]
[INFO] [stdout]    |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/backend/src/cartridge.rs:74:3
[INFO] [stdout]    |
[INFO] [stdout] 74 | #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]    |
[INFO] [stdout] 74 | #[unsafe(no_mangle)]
[INFO] [stdout]    |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]    --> src/backend/src/cartridge.rs:129:3
[INFO] [stdout]     |
[INFO] [stdout] 129 | #[no_mangle]
[INFO] [stdout]     |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]     |
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]     |
[INFO] [stdout] 129 | #[unsafe(no_mangle)]
[INFO] [stdout]     |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]    --> src/backend/src/cartridge.rs:178:3
[INFO] [stdout]     |
[INFO] [stdout] 178 | #[no_mangle]
[INFO] [stdout]     |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]     |
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]     |
[INFO] [stdout] 178 | #[unsafe(no_mangle)]
[INFO] [stdout]     |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]    --> src/backend/src/cartridge.rs:206:3
[INFO] [stdout]     |
[INFO] [stdout] 206 | #[no_mangle]
[INFO] [stdout]     |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]     |
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]     |
[INFO] [stdout] 206 | #[unsafe(no_mangle)]
[INFO] [stdout]     |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `backend` (lib) due to 7 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `backend` (lib test) due to 7 previous errors
[INFO] running `Command { std: "docker" "inspect" "199da4d599ede47d48e9f9c718125ef33bf089f59b0c4fc86d42e7fc0004074f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "199da4d599ede47d48e9f9c718125ef33bf089f59b0c4fc86d42e7fc0004074f", kill_on_drop: false }`
[INFO] [stdout] 199da4d599ede47d48e9f9c718125ef33bf089f59b0c4fc86d42e7fc0004074f
